package modelo.torres;

// paquete de proyecto
import java.io.Serializable;
import java.util.LinkedList;
import java.util.Observable;

import modelo.enemigos.Enemigo;
import modelo.interfaces.Posicionable;
import modelo.mapa.Casillero;

public abstract class Torre extends Observable implements Posicionable, Serializable {
	
	private int costo;
	private int alcance;
	private int danio;
	private Casillero casillero;

	public int getCosto() {
		return this.costo;
	}

	public int getDanio() {
		return this.danio;
	}

	public int getAlcance() {
		return this.alcance;
	}

	public void setCosto(int costo) {
		this.costo = costo;
	}

	public void setDanio(int danio) {
		this.danio = danio;
	}

	public void setAlcance(int alcance) {
		this.alcance = alcance;
	}

	public Casillero getCasillero() {
		return this.casillero;
	}

	public void setCasillero(Casillero casillero) {
		this.casillero = casillero;
		this.setChanged();
		this.notifyObservers();
	}

	public Enemigo definirObjetivo(LinkedList<Enemigo> enemigos) {

		if (!enemigos.isEmpty()) {
			Enemigo enemigo = enemigos.getLast();
			return enemigo;
		} else
			return null;
	}

	public void reDibujar() { }
}
